/*
    This file is part of Epoch <http://code.google.com/p/epoch/>.

    Copyright (C) 2011 Adam Meily <meily.adam@gmail.com>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/


#ifndef BACKUP_H
#define BACKUP_H
#include <QtCore/QDateTime>
#include <QtCore/QString>
#include <QtCore/QByteArray>
#include "Device.h"
#include "Model.h"

class Backup : public Model
{
public:
    /*
    enum BackupState
    {
        Done,
        Working,
        Incomplete
    };
    */
    Backup();
    Backup(const Backup& other);
    Backup(const Device& device);
    Backup(int id, const Device& device, const QDateTime& start,
           const QDateTime& end);
    virtual ~Backup();
    virtual Backup& operator=(const Backup& other);
    
    //BackupState state() const;
    //void state(BackupState state);
    
    const QDateTime& startTime() const;
    const QDateTime& endTime() const;
    const Device& device() const;
    //const QString& lastPath() const;
    void begin();
    void end();
    //int revision() const;
    
    bool isNull() const;
    
private:
    QDateTime m_startTime, m_endTime;
    Device m_device;
    //QString m_lastPath;
    //BackupState m_state;
    //int m_revision;
};

#endif // BACKUP_H
